package easier.fast.service.data;

import android.text.TextUtils;
import androidx.collection.ArrayMap;
import java.util.Map;
import java.util.Set;
import org.json.JSONArray;
import org.json.JSONObject;

/**
 * 参数包含网络请求的所有参数信息
 */
public class Data {

    /**
     * 地址
     */
    public String api;

    /**
     * sign
     */
    public String sign;

    /**
     * token
     */
    public String token;

    /**
     * 用户id
     */
    public String id;

    public final Map< String, String > params = new ArrayMap<>();

    public Data( String api ) {

        this.api = api;
    }

    public String toJson() throws Exception {

        JSONObject jsonObject = new JSONObject();
        jsonObject.put( "sign", sign );
        jsonObject.put( "device", "1" );
        if ( !TextUtils.isEmpty( token ) ) {
            jsonObject.put( "token", token );
        }
        if ( !TextUtils.isEmpty( id ) ) {
            jsonObject.put( "id", id );
        }

        Set< String > keySet = params.keySet();
        for ( String key : keySet ) {
            String value = params.get( key );
            if ( value != null && value.length() > 0 && value.charAt( 0 ) == '[' && value.charAt( value.length() - 1 ) == ']' ) {
                JSONArray array = new JSONArray( value );
                jsonObject.put( key, array );
            } else {
                jsonObject.put( key, value );
            }
        }

        return jsonObject.toString();
    }
}
